07 System.import vs import

Próxima Atividade
  • Sugerir melhoria
Play
Current Time 0:00
/
Duration Time 0:00
Remaining Time -0:00
Stream TypeLIVE
Loaded: 0%
Progress: 0%
0:00
Fullscreen
00:00
Mute
Playback Rate
  • 2x
  • 1.5x
  • 1.2x
  • 1x
  • 0.8x
  • 0.7x
1x
Subtitles
  • subtitles off
Captions
  • captions off
Chapters
  • Chapters
HD
Desculpe-nos pelo transtorno, mas este video não pode ser carregado, tente novamente.

Transcrição

O System.import() é uma maneira utilizada pelo Webpack para fazer o carregamento assíncrono sob demanda de módulos. Porém, o ECMAScript nas versões mais atuais, usa uma sintaxe específica para carregamento nestes casos, fazendo o uso da função import().

Tanto o Chromo como outros navegadores já suportam esta função, o Webpack ao detectá-la fará por debaixo dos panos, ele fará o System.import(), mas aceitando a sintaxe do ES que se tornará vigente.

Há uma proposta para introduzir importações dinâmicas na linguagem que está bem avançada e que pode ser acompanhada em https://github.com/tc39/proposal-dynamic-import.

O Webpack 3 está preparado para trabalhar com o import(), mas se salvamos e damos o build no projeto, teremos um erro na compilação. Somos informados que ele tem um erro na sintaxe, no entanto, ele não é entendido pelo Babel - utilizado por frameworks como React. Isto significa que o Babel entende como inválido o usuo do import().

Você tem opção de alterar o código e usar o System.import(), ou pode utilizar o que a sintaxe mais moderna, ue será adotada como padrão no futuro. No segundo caso, se você utilizar o Babel, terá que instalar o plugin babel-plugin-syntax-dynamic-import.

No Terminal, rodaremos o seguinte comando:


npm install babel-plugin-syntax-dynamic-import@6.18.0 --save-dev

Com isso, não será realizado o parse do Babel e deixar de reclamar sobre a sintaxe. Depois de fazemos o download do plugin, acessaremos o arquivo .babelrc para adicionar o novo plugin.

{
    "presets":["es2017"],
    "plugins" : ["transform-decorators-legacy", "babel-plugin-syntax-dynamic-import"]

}

Agora ele será processado também durante o processo de compilação. Compilaremos a aplicação novamente, e ao recarregarmos a aplicação, a aplicação conseguirá importar as negociações como o esperado.

negociacoes listadas na tabela

Nós utilizamos a abordagem mais moderna para a realização do carregamento assíncrono (lazy loading). Este ajuste era necessário apenas em projetos que utilizam o Babel.

Tirar dúvida Próxima Atividade
ícone Webpack: Manipulando módulos na sua webapp

Webpack: Manipulando módulos na sua webapp

100%
Aula06 de 06

Boas práticas

Atividades 7 de 16

  • 01 Otimizando o build com Scope Hoisting 03min
  • 02 Resumo
  • 03 Separando o nosso código das bibliotecas 08min
  • 04 CommonsChunkPlugin
  • 05 Gerando a página principal automaticamente 09min
  • 06 Code splitting e Lazy loading 09min
  • 07 System.import vs import 04min
  • 08 Sobre code splitting e lazy loading
  • 09 Quais são os arquivos para distribuição? 02min
  • 10 Alterando o endereço da API no build de produção 08min
  • 11 API de desenvolvimento e de produção
  • 12 O que aprendemos?
  • 13 Consolidando seu conhecimento
  • 14 Considerações finais 01min
  • 15 Download do projeto final
  • 16 Entendendo o que fizemos

Aulas

Outros Links

Fórum Trocar Curso
Gravatar de Marcos Katsumi Kay

Marcos Katsumi Kay 34.0k xp

Logo da Alura